// pages/answer/answer.js
const db = wx.cloud.database();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    select:"",
    status:"",
    list:[],
    answerNow:0,
    optionList:["A","B","C","D"],
    successNum:0,
    failNum:0,
  },

  selectAnswer(e){
    //1、用户选择的选项是哪个
    const { item } = e.currentTarget.dataset
    
    //2、用户选择的选项正确与否
    //3、给用户提示答案
    const answer = this.data.list[this.data.answerNow].answer;
    if (item === answer){ //正确
      this.setData({
        select:item,
        status:"success",
        successNum: this.data.successNum + 1,
      })
    }else{    //错误
      this.setData({
        select:item,
        status:"fail",
        failNum: this.data.failNum + 1,
      })
    }
//4、答完最后一题时结束：
    if(this.data.answerNow === this.data.list.length - 1){
      wx.showModal({
        title:"答题结束",
        content:'共答对'+this.data.successNum+'道题，共答错'+this.data.failNum+'道题',
        showCancel:false,
        success:() =>{
          //存储至数据库：
          //1、用户昵称、头像
          //2、本次答对的题目数量
          //3、答题结束时间
          const {avatarUrl,nickName } = wx.getStorageSync('userInfo');
          const num = this.data.successNum;
          const time = new Date().getTime();
          
          //1、判断数据库中有无当前用户的答题记录，有的话就判断本次答对数量是否大于之前数量，大于则替换
          //2、没有用户记录，则添加
          const openid = wx.getStorageSync('openid');
          db.collection('recordRank').where({
            _openid : openid,
          }).get({
            success:(res) => {
              const { data } = res;
              if(data.length > 0){
                if(data[0].num < num){
                  db.collection('recordRank').doc(data[0]._id).update({
                    data:{
                      num,
                      time,
                    }
                  })
                }
              }else{
                db.collection('recordRank').add({
                  data:{
                    avatarUrl,
                    nickName,
                    num,
                    time
                  },
                  success: (res) => {
                    //重复用户的数据该如何操作？
                    //1、直接添加
                    //2、判断答题人之前是否有记录，有则替换之前的答题记录
                    //3、判断答题人之前是否有记录，取最大的一次记录
                    //选择第三种方式
                  }
                })
              }
              wx.navigateTo({
                url: '../index/index',
              })
            }
          })
        }
      })
    }else{
      //5、没答完则跳转到下一个题目
      setTimeout(() => {
        this.setData({
          answerNow: this.data.answerNow + 1,
          status:"",
          select:"",
        })
      },500)
    }
    
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    db.collection('questionBank').get({
      success: (res) => {
        const { data } = res;
        this.setData({
          list : data,
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})